home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 27 / CU Amiga Magazine's Super CD-ROM 27 (1998)(EMAP Images)(GB)[!][issue 1998-10].iso / CUCD / Programming / Mesa / include / gl / glut.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-02  |  15.9 KB  |  492 lines

  1. #ifndef __glut_h__
  2. #define __glut_h__
  3.  
  4. /* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996. */
  5.  
  6. /* This program is freely distributable without licensing fees  and is
  7.    provided without guarantee or warrantee expressed or  implied. This
  8.    program is -not- in the public domain. */
  9.  
  10. /*
  11.  * glut.h
  12.  *
  13.  * Version 1.0  28 Jun 1998
  14.  * by Jarno van der Linden
  15.  * jarno@kcbbs.gen.nz
  16.  *
  17.  * Based on glut.h
  18.  * The functions not supported are commented out
  19.  *
  20.  */
  21.  
  22.  
  23. #if defined(WIN32)
  24. #include <windows.h>
  25. #pragma warning (disable:4244)        /* disable bogus conversion warnings */
  26. #endif
  27. #include <GL/gl.h>
  28. #include <GL/glu.h>
  29.  
  30. /* define and CALLBACK to null string if we aren't on Win32 */
  31. #if !defined(WIN32)
  32. #define APIENTRY
  33. #define CALLBACK
  34. #endif
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39.  
  40. /**
  41.  GLUT API revision history:
  42.  
  43.  GLUT_API_VERSION is updated to reflect incompatible GLUT
  44.  API changes (interface changes, semantic changes, deletions,
  45.  or additions).
  46.  
  47.  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
  48.  
  49.  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
  50.  extension.  Supports new input devices like tablet, dial and button
  51.  box, and Spaceball.  Easy to query OpenGL extensions.
  52.  
  53.  GLUT_API_VERSION=3  glutMenuStatus added.
  54.  
  55.  GLUT_API_VERSION=4  glutInitDisplayString, glutWarpPointer,
  56.  glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
  57.  video resize subAPI (NOT FINALIZED!).
  58. **/
  59. #ifndef GLUT_API_VERSION  /* allow this to be overriden */
  60. #define GLUT_API_VERSION        3
  61. #endif
  62.  
  63. /**
  64.  GLUT implementation revision history:
  65.  
  66.  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
  67.  API revisions and implementation revisions (ie, bug fixes).
  68.  
  69.  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
  70.  GLUT Xlib-based implementation.  11/29/94
  71.  
  72.  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
  73.  GLUT Xlib-based implementation providing GLUT version 2
  74.  interfaces.
  75.  
  76.  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
  77.  
  78.  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
  79.  
  80.  GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
  81.  
  82.  GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
  83.  
  84.  GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
  85.  and video resize.  1/3/97
  86.  
  87.  GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
  88.  
  89.  GLUT_XLIB_IMPLEMENTATION=11 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
  90. **/
  91. #ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
  92. #define GLUT_XLIB_IMPLEMENTATION    11
  93. #endif
  94.  
  95. /* Display mode bit masks. */
  96. #define GLUT_RGB            0
  97. #define GLUT_RGBA            GLUT_RGB
  98. #define GLUT_INDEX            1
  99. #define GLUT_SINGLE            0
  100. #define GLUT_DOUBLE            2
  101. #define GLUT_ACCUM            4
  102. #define GLUT_ALPHA            8
  103. #define GLUT_DEPTH            16
  104. #define GLUT_STENCIL            32
  105. #if (GLUT_API_VERSION >= 2)
  106. #define GLUT_MULTISAMPLE        128
  107. #define GLUT_STEREO            256
  108. #endif
  109. #if (GLUT_API_VERSION >= 3)
  110. #define GLUT_LUMINANCE            512
  111. #endif
  112.  
  113. /* Mouse buttons. */
  114. #define GLUT_LEFT_BUTTON        0
  115. #define GLUT_MIDDLE_BUTTON        1
  116. #define GLUT_RIGHT_BUTTON        2
  117.  
  118. /* Mouse button  state. */
  119. #define GLUT_DOWN            0
  120. #define GLUT_UP                1
  121.  
  122. #if (GLUT_API_VERSION >= 2)
  123. /* function keys */
  124. #define GLUT_KEY_F1            1
  125. #define GLUT_KEY_F2            2
  126. #define GLUT_KEY_F3            3
  127. #define GLUT_KEY_F4            4
  128. #define GLUT_KEY_F5            5
  129. #define GLUT_KEY_F6            6
  130. #define GLUT_KEY_F7            7
  131. #define GLUT_KEY_F8            8
  132. #define GLUT_KEY_F9            9
  133. #define GLUT_KEY_F10            10
  134. #define GLUT_KEY_F11            11
  135. #define GLUT_KEY_F12            12
  136. /* directional keys */
  137. #define GLUT_KEY_LEFT            100
  138. #define GLUT_KEY_UP            101
  139. #define GLUT_KEY_RIGHT            102
  140. #define GLUT_KEY_DOWN            103
  141. #define GLUT_KEY_PAGE_UP        104
  142. #define GLUT_KEY_PAGE_DOWN        105
  143. #define GLUT_KEY_HOME            106
  144. #define GLUT_KEY_END            107
  145. #define GLUT_KEY_INSERT            108
  146. #endif
  147.  
  148. /* Entry/exit  state. */
  149. #define GLUT_LEFT            0
  150. #define GLUT_ENTERED            1
  151.  
  152. /* Menu usage  state. */
  153. #define GLUT_MENU_NOT_IN_USE        0
  154. #define GLUT_MENU_IN_USE        1
  155.  
  156. /* Visibility  state. */
  157. #define GLUT_NOT_VISIBLE        0
  158. #define GLUT_VISIBLE            1
  159.  
  160. /* Window status  state. */
  161. #define GLUT_HIDDEN            0
  162. #define GLUT_FULLY_RETAINED        1
  163. #define GLUT_PARTIALLY_RETAINED        2
  164. #define GLUT_FULLY_COVERED        3
  165.  
  166. /* Color index component selection values. */
  167. #define GLUT_RED            0
  168. #define GLUT_GREEN            1
  169. #define GLUT_BLUE            2
  170.  
  171. /* Layers for use. */
  172. #define GLUT_NORMAL            0
  173. #define GLUT_OVERLAY            1
  174.  
  175. #if defined(WIN32)
  176. /* Stroke font constants (use these in GLUT program). */
  177. #define GLUT_STROKE_ROMAN        ((void*)0)
  178. #define GLUT_STROKE_MONO_ROMAN        ((void*)1)
  179.  
  180. /* Bitmap font constants (use these in GLUT program). */
  181. #define GLUT_BITMAP_9_BY_15        ((void*)2)
  182. #define GLUT_BITMAP_8_BY_13        ((void*)3)
  183. #define GLUT_BITMAP_TIMES_ROMAN_10    ((void*)4)
  184. #define GLUT_BITMAP_TIMES_ROMAN_24    ((void*)5)
  185. #if (GLUT_API_VERSION >= 3)
  186. #define GLUT_BITMAP_HELVETICA_10    ((void*)6)
  187. #define GLUT_BITMAP_HELVETICA_12    ((void*)7)
  188. #define GLUT_BITMAP_HELVETICA_18    ((void*)8)
  189. #endif
  190. #else
  191. /* Stroke font opaque addresses (use constants instead in source code). */
  192. extern void *glutStrokeRoman;
  193. extern void *glutStrokeMonoRoman;
  194.  
  195. /* Stroke font constants (use these in GLUT program). */
  196. #define GLUT_STROKE_ROMAN        (&glutStrokeRoman)
  197. #define GLUT_STROKE_MONO_ROMAN        (&glutStrokeMonoRoman)
  198.  
  199. /* Bitmap font opaque addresses (use constants instead in source code). */
  200. extern void *glutBitmap9By15;
  201. extern void *glutBitmap8By13;
  202. extern void *glutBitmapTimesRoman10;
  203. extern void *glutBitmapTimesRoman24;
  204. extern void *glutBitmapHelvetica10;
  205. extern void *glutBitmapHelvetica12;
  206. extern void *glutBitmapHelvetica18;
  207.  
  208. /* Bitmap font constants (use these in GLUT program). */
  209. #define GLUT_BITMAP_9_BY_15        (&glutBitmap9By15)
  210. #define GLUT_BITMAP_8_BY_13        (&glutBitmap8By13)
  211. #define GLUT_BITMAP_TIMES_ROMAN_10    (&glutBitmapTimesRoman10)
  212. #define GLUT_BITMAP_TIMES_ROMAN_24    (&glutBitmapTimesRoman24)
  213. #if (GLUT_API_VERSION >= 3)
  214. #define GLUT_BITMAP_HELVETICA_10    (&glutBitmapHelvetica10)
  215. #define GLUT_BITMAP_HELVETICA_12    (&glutBitmapHelvetica12)
  216. #define GLUT_BITMAP_HELVETICA_18    (&glutBitmapHelvetica18)
  217. #endif
  218. #endif
  219.  
  220. /* glutGet parameters. */
  221. #define GLUT_WINDOW_X            100
  222. #define GLUT_WINDOW_Y            101
  223. #define GLUT_WINDOW_WIDTH        102
  224. #define GLUT_WINDOW_HEIGHT        103
  225. #define GLUT_WINDOW_BUFFER_SIZE        104
  226. #define GLUT_WINDOW_STENCIL_SIZE    105
  227. #define GLUT_WINDOW_DEPTH_SIZE        106
  228. #define GLUT_WINDOW_RED_SIZE        107
  229. #define GLUT_WINDOW_GREEN_SIZE        108
  230. #define GLUT_WINDOW_BLUE_SIZE        109
  231. #define GLUT_WINDOW_ALPHA_SIZE        110
  232. #define GLUT_WINDOW_ACCUM_RED_SIZE    111
  233. #define GLUT_WINDOW_ACCUM_GREEN_SIZE    112
  234. #define GLUT_WINDOW_ACCUM_BLUE_SIZE    113
  235. #define GLUT_WINDOW_ACCUM_ALPHA_SIZE    114
  236. #define GLUT_WINDOW_DOUBLEBUFFER    115
  237. #define GLUT_WINDOW_RGBA        116
  238. #define GLUT_WINDOW_PARENT        117
  239. #define GLUT_WINDOW_NUM_CHILDREN    118
  240. #define GLUT_WINDOW_COLORMAP_SIZE    119
  241. #if (GLUT_API_VERSION >= 2)
  242. #define GLUT_WINDOW_NUM_SAMPLES        120
  243. #define GLUT_WINDOW_STEREO        121
  244. #endif
  245. #if (GLUT_API_VERSION >= 3)
  246. #define GLUT_WINDOW_CURSOR        122
  247. #endif
  248. #define GLUT_SCREEN_WIDTH        200
  249. #define GLUT_SCREEN_HEIGHT        201
  250. #define GLUT_SCREEN_WIDTH_MM        202
  251. #define GLUT_SCREEN_HEIGHT_MM        203
  252. #define GLUT_MENU_NUM_ITEMS        300
  253. #define GLUT_DISPLAY_MODE_POSSIBLE    400
  254. #define GLUT_INIT_WINDOW_X        500
  255. #define GLUT_INIT_WINDOW_Y        501
  256. #define GLUT_INIT_WINDOW_WIDTH        502
  257. #define GLUT_INIT_WINDOW_HEIGHT        503
  258. #define GLUT_INIT_DISPLAY_MODE        504
  259. #if (GLUT_API_VERSION >= 2)
  260. #define GLUT_ELAPSED_TIME        700
  261. #endif
  262.  
  263. #if (GLUT_API_VERSION >= 2)
  264. /* glutDeviceGet parameters. */
  265. #define GLUT_HAS_KEYBOARD        600
  266. #define GLUT_HAS_MOUSE            601
  267. #define GLUT_HAS_SPACEBALL        602
  268. #define GLUT_HAS_DIAL_AND_BUTTON_BOX    603
  269. #define GLUT_HAS_TABLET            604
  270. #define GLUT_NUM_MOUSE_BUTTONS        605
  271. #define GLUT_NUM_SPACEBALL_BUTTONS    606
  272. #define GLUT_NUM_BUTTON_BOX_BUTTONS    607
  273. #define GLUT_NUM_DIALS            608
  274. #define GLUT_NUM_TABLET_BUTTONS        609
  275. #endif
  276.  
  277. #if (GLUT_API_VERSION >= 3)
  278. /* glutLayerGet parameters. */
  279. #define GLUT_OVERLAY_POSSIBLE           800
  280. #define GLUT_LAYER_IN_USE        801
  281. #define GLUT_HAS_OVERLAY        802
  282. #define GLUT_TRANSPARENT_INDEX        803
  283. #define GLUT_NORMAL_DAMAGED        804
  284. #define GLUT_OVERLAY_DAMAGED        805
  285.  
  286. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  287. /* glutVideoResizeGet parameters. */
  288. #define GLUT_VIDEO_RESIZE_POSSIBLE    900
  289. #define GLUT_VIDEO_RESIZE_IN_USE    901
  290. #define GLUT_VIDEO_RESIZE_X_DELTA    902
  291. #define GLUT_VIDEO_RESIZE_Y_DELTA    903
  292. #define GLUT_VIDEO_RESIZE_WIDTH_DELTA    904
  293. #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA    905
  294. #define GLUT_VIDEO_RESIZE_X        906
  295. #define GLUT_VIDEO_RESIZE_Y        907
  296. #define GLUT_VIDEO_RESIZE_WIDTH        908
  297. #define GLUT_VIDEO_RESIZE_HEIGHT    909
  298. #endif
  299.  
  300. /* glutUseLayer parameters. */
  301. #define GLUT_NORMAL            0
  302. #define GLUT_OVERLAY            1
  303.  
  304. /* glutGetModifiers return mask. */
  305. #define GLUT_ACTIVE_SHIFT               1
  306. #define GLUT_ACTIVE_CTRL                2
  307. #define GLUT_ACTIVE_ALT                 4
  308.  
  309. /* glutSetCursor parameters. */
  310. /* Basic arrows. */
  311. #define GLUT_CURSOR_RIGHT_ARROW        0
  312. #define GLUT_CURSOR_LEFT_ARROW        1
  313. /* Symbolic cursor shapes. */
  314. #define GLUT_CURSOR_INFO        2
  315. #define GLUT_CURSOR_DESTROY        3
  316. #define GLUT_CURSOR_HELP        4
  317. #define GLUT_CURSOR_CYCLE        5
  318. #define GLUT_CURSOR_SPRAY        6
  319. #define GLUT_CURSOR_WAIT        7
  320. #define GLUT_CURSOR_TEXT        8
  321. #define GLUT_CURSOR_CROSSHAIR        9
  322. /* Directional cursors. */
  323. #define GLUT_CURSOR_UP_DOWN        10
  324. #define GLUT_CURSOR_LEFT_RIGHT        11
  325. /* Sizing cursors. */
  326. #define GLUT_CURSOR_TOP_SIDE        12
  327. #define GLUT_CURSOR_BOTTOM_SIDE        13
  328. #define GLUT_CURSOR_LEFT_SIDE        14
  329. #define GLUT_CURSOR_RIGHT_SIDE        15
  330. #define GLUT_CURSOR_TOP_LEFT_CORNER    16
  331. #define GLUT_CURSOR_TOP_RIGHT_CORNER    17
  332. #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER    18
  333. #define GLUT_CURSOR_BOTTOM_LEFT_CORNER    19
  334. /* Inherit from parent window. */
  335. #define GLUT_CURSOR_INHERIT        100
  336. /* Blank cursor. */
  337. #define GLUT_CURSOR_NONE        101
  338. /* Fullscreen crosshair (if available). */
  339. #define GLUT_CURSOR_FULL_CROSSHAIR    102
  340. #endif
  341.  
  342. /* GLUT initialization sub-API. */
  343. extern void glutInit( int *argcp, char **argv);
  344. extern void glutInitDisplayMode( unsigned int mode );
  345. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  346. //extern void glutInitDisplayString( const char *string );
  347. #endif
  348. extern void glutInitWindowPosition( int x, int y );
  349. extern void glutInitWindowSize( int width, int height );
  350. extern void glutMainLoop( void );
  351.  
  352. /* GLUT window sub-API. */
  353. extern int glutCreateWindow( const char *title );
  354. //extern int glutCreateSubWindow( int win, int x, int y, int width, int height );
  355. extern void glutDestroyWindow( int win );
  356. extern void glutPostRedisplay( void );
  357. extern void glutSwapBuffers( void );
  358. extern int glutGetWindow( void );
  359. extern void glutSetWindow( int win );
  360. extern void glutSetWindowTitle( const char *title );
  361. //extern void glutSetIconTitle( const char *title );
  362. extern void glutPositionWindow( int x, int y );
  363. extern void glutReshapeWindow( int width, int height );
  364. //extern void glutPopWindow( void );
  365. //extern void glutPushWindow( void );
  366. //extern void glutIconifyWindow( void );
  367. //extern void glutShowWindow( void );
  368. //extern void glutHideWindow( void );
  369. #if (GLUT_API_VERSION >= 3)
  370. //extern void glutFullScreen( void );
  371. //extern void glutSetCursor( int cursor );
  372. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  373. //extern void glutWarpPointer( int x, int y );
  374. #endif
  375.  
  376. /* GLUT overlay sub-API. */
  377. //extern void glutEstablishOverlay( void );
  378. //extern void glutRemoveOverlay( void );
  379. //extern void glutUseLayer( GLenum layer );
  380. //extern void glutPostOverlayRedisplay( void );
  381. //extern void glutShowOverlay( void );
  382. //extern void glutHideOverlay( void );
  383. #endif
  384.  
  385. /* GLUT menu sub-API. */
  386. extern int glutCreateMenu( void (*)(int) );
  387. extern void glutDestroyMenu( int menu );
  388. extern int glutGetMenu( void );
  389. extern void glutSetMenu( int menu );
  390. extern void glutAddMenuEntry( const char *label, int value );
  391. extern void glutAddSubMenu( const char *label, int submenu );
  392. extern void glutChangeToMenuEntry( int item, const char *label, int value );
  393. extern void glutChangeToSubMenu( int item, const char *label, int submenu );
  394. extern void glutRemoveMenuItem( int item );
  395. extern void glutAttachMenu( int button );
  396. extern void glutDetachMenu( int button );
  397.  
  398. /* GLUT  sub-API. */
  399. extern void glutDisplayFunc( void (*)(void) );
  400. extern void glutReshapeFunc( void (*)(int width, int height) );
  401. extern void glutKeyboardFunc( void (*)(unsigned char key, int x, int y) );
  402. extern void glutMouseFunc( void (*)(int button, int state, int x, int y) );
  403. extern void glutMotionFunc( void (*)(int x, int y) );
  404. extern void glutPassiveMotionFunc( void (*)(int x, int y) );
  405. //extern void glutEntryFunc( void (*)(int state) );
  406. extern void glutVisibilityFunc( void (*)(int state) );
  407. extern void glutIdleFunc( void (*)(void) );
  408. //extern void glutTimerFunc( unsigned int millis, void (*)(int value), int value );
  409. //extern void glutMenuStateFunc( void (*)(int state) );    /* NOTE: This is deprecated */
  410. #if (GLUT_API_VERSION >= 2)
  411. extern void glutSpecialFunc( void (*)(int key, int x, int y) );
  412. //extern void glutSpaceballMotionFunc( void (*)(int x, int y, int z) );
  413. //extern void glutSpaceballRotateFunc( void (*)(int x, int y, int z) );
  414. //extern void glutSpaceballButtonFunc( void (*)(int button, int state) );
  415. //extern void glutButtonBoxFunc( void (*)(int button, int state) );
  416. //extern void glutDialsFunc( void (*)(int dial, int value) );
  417. //extern void glutTabletMotionFunc( void (*)(int x, int y) );
  418. //extern void glutTabletButtonFunc( void (*)(int button, int state, int x, int y) );
  419. #if (GLUT_API_VERSION >= 3)
  420. extern void glutMenuStatusFunc( void (*)(int status, int x, int y) );
  421. //extern void glutOverlayDisplayFunc( void (*)(void) );
  422. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  423. //extern void glutWindowStatusFunc( void (*)(int state) );
  424. #endif
  425. #endif
  426. #endif
  427.  
  428. /* GLUT color index sub-API. */
  429. extern void glutSetColor( int, GLfloat red, GLfloat green, GLfloat blue );
  430. extern GLfloat glutGetColor( int ndx, int component );
  431. //extern void glutCopyColormap( int win );
  432.  
  433. /* GLUT state retrieval sub-API. */
  434. extern int glutGet( GLenum type );
  435. //extern int glutDeviceGet( GLenum type );
  436. #if (GLUT_API_VERSION >= 2)
  437. /* GLUT extension support sub-API */
  438. extern int glutExtensionSupported( const char *name );
  439. #endif
  440. #if (GLUT_API_VERSION >= 3)
  441. extern int glutGetModifiers( void );
  442. //extern int glutLayerGet( GLenum type );
  443. #endif
  444.  
  445. /* GLUT font sub-API */
  446. //extern void glutBitmapCharacter( void *font, int character );
  447. //extern int glutBitmapWidth( void *font, int character );
  448. //extern void glutStrokeCharacter( void *font, int character );
  449. //extern int glutStrokeWidth( void *font, int character );
  450. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  451. //extern int glutBitmapLength( void *font, const unsigned char *string );
  452. //extern int glutStrokeLength( void *font, const unsigned char *string );
  453. #endif
  454.  
  455. /* GLUT pre-built models sub-API */
  456. extern void glutWireSphere( GLdouble radius, GLint slices, GLint stacks );
  457. extern void glutSolidSphere( GLdouble radius, GLint slices, GLint stacks );
  458. extern void glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks );
  459. extern void glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks );
  460. extern void glutWireCube( GLdouble size );
  461. extern void glutSolidCube( GLdouble size );
  462. extern void glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings );
  463. extern void glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings );
  464. extern void glutWireDodecahedron( void );
  465. extern void glutSolidDodecahedron( void );
  466. extern void glutWireTeapot( GLdouble size );
  467. extern void glutSolidTeapot( GLdouble size );
  468. extern void glutWireOctahedron( void );
  469. extern void glutSolidOctahedron( void );
  470. extern void glutWireTetrahedron( void );
  471. extern void glutSolidTetrahedron( void );
  472. extern void glutWireIcosahedron( void );
  473. extern void glutSolidIcosahedron( void );
  474.  
  475. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  476. /* GLUT video resize sub-API. */
  477. //extern int glutVideoResizeGet( GLenum param );
  478. //extern void glutSetupVideoResizing( void );
  479. //extern void glutStopVideoResizing( void );
  480. //extern void glutVideoResize( int x, int y, int width, int height );
  481. //extern void glutVideoPan( int x, int y, int width, int height );
  482.  
  483. /* GLUT debugging sub-API. */
  484. //extern void glutReportErrors( void );
  485. #endif
  486.  
  487. #ifdef __cplusplus
  488. }
  489.  
  490. #endif
  491. #endif                  /* __glut_h__ */
  492.